﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Core.ProcessManager.Server;

namespace Sinacor.Process.Bovespa.Casamento.Server.ProcessLogic
{
    /// <summary>
    /// Classe base para os processos de casamento automático
    /// </summary>
    public class CasamentoBase : BaseProcessLogic
    {

        /// <summary>
        /// Trata as exceções geradas após execução de uma procedure
        /// </summary>
        /// <param name="entity"></param>
        protected void TratarExcecoes(ProcessEntity.Resultado entity)
        {
            List<Object> listaParams;

            if (string.IsNullOrEmpty(entity.Argumentos))
            {
                throw new BusinessException(entity.CodigoErro);
            }
            else
            {
                listaParams = ErrorMessage.ConvertXmlArgumentsToParameters(entity.Argumentos);
                throw new BusinessException(entity.CodigoErro, listaParams.ToArray());
            } 
        }

    }
}
